package ai.people.netmon.framework.domain.facebook.view.request;

import ai.people.netmon.framework.domain.facebook.view.entity.FacebookAccountView;
import ai.people.netmon.framework.model.request.PageKeyWordsRequest;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;

/**
 * facebook-查询vo
 *
 * @author zhenglin
 * @date 2022/2/25
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class QueryViewRequest extends PageKeyWordsRequest {

    /**
     * 重要度(-1：查询默认为空 0：未确定，3：不重要，6：普通，  9：一般重要，12：比较重要，15非常重要；)
     */
    private String importanceDeg;
    /**
     * 有效性，-1：查询默认为空 0:未确定，2表示无效 1表示有效sys_dic.validity
     */
    private String validity;
    /**
     * 采集状态（ -1：查询默认为空 1已采集，0 待采集）
     */
    private String collectionStatus;

    public LambdaQueryWrapper<FacebookAccountView> createQueryWrapper(){
        LambdaQueryWrapper<FacebookAccountView> wrapper = Wrappers.lambdaQuery();
        if (checkDefault(this.importanceDeg)){
            wrapper.eq(FacebookAccountView::getImportanceDeg,this.importanceDeg);
        }
        if (checkDefault(this.validity)){
            wrapper.eq(FacebookAccountView::getValidity,this.validity);
        }
        if (checkDefault(this.getCollectionStatus())){
            wrapper.eq(FacebookAccountView::getCollectionStatus,this.getCollectionStatus());
        }
        String searchKeywords = this.getSearchKeywords();
        if (StringUtils.isNotBlank(searchKeywords)){
            wrapper.and(x -> x.like(FacebookAccountView::getAccountName, searchKeywords).or().like(FacebookAccountView::getAccountLink, searchKeywords));
        }
        return wrapper;
    }

}
